Computers process information by executing a sequence of instructions, which are supplied from a computer program written in a particular format. Most computer programs are written in high level languages which are not directly executable by the computer processor. In order to run these programs, a compiler is used to translate the higher level commands into instructions (or macroinstructions) which a microprocessor can operate on. When a program is executed, instructions of the program are sent to a decoder of a microprocessor, where an instruction is decoded into one or more micro-operations which are executable by execution units in the microprocessor.
In-the-field failures of a microprocessor may happen because of various reasons, such as, for example, degradation of material, process variations, soft errors, design errors, etc. Errors that happen during decoding of instructions may induce failures that are difficult to recover from and consequently result in system failures.